package api

import (
	"beego/models"
	"beego/service"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/orm"
)

type ApiController struct {
	beego.Controller
}

func init() {
	// 在初始化控制器时，要注册对应模型结构体，也可以在具体方法内注册
	orm.RegisterModel(new(models.SystemNews), new(models.SystemProduct), new(models.SystemMark))
}

/**
 * @Title POST
 * @Description 文章列表接口
 */

func (c *ApiController) NewsList() {

}

/**
 * @Title POST
 * @Description 文章详情接口
 */
func (c *ApiController) NewsDetail() {

}

/**
 * @Title GET
 * @Description 文章标签接口
 */
func (c *ApiController) TagsList() {
	// JSON数据处理
	ret := service.ReturnMsg{
		Code: 200, Msg: "Success",
	}
	// 过滤请求方法
	var Method = c.Ctx.Input.Method()
	if Method != "POST" && Method != "GET" {
		ret.Code = 10001
		ret.Msg = "请求方法错误!"
		c.Data["json"] = ret
		c.ServeJSON() // 对json进行序列化输出
		c.StopRun()
	}

	// 二维切片(声明临时变量)
	var Tags []TagsData

	var field = "id,name"
	qb, _ := orm.NewQueryBuilder("mysql")
	qb.Select(field).From("hz_system_mark").
		Where("is_show = 1").OrderBy("id").Desc()

	// 导出SQL语句,执行SQL语句
	sql := qb.String()
	//fmt.Println(sql)
	OutMysql := orm.NewOrm()
	OutMysql.Raw(sql).QueryRows(&Tags)

	var TagsData map[string]interface{}
	TagsData["List"] = Tags

	ret.Data = TagsData
	c.Data["json"] = ret
	c.ServeJSON() // 对json进行序列化输出
	c.StopRun()
}

type TagsData struct {
	Id   int
	Name string
}
